芪èŠçŽ éžæã®åžžèãå€ããCSS :has() ã»ã¬ã¯ã¿ãŒãæ¢æ±ããŸããå®çšçãªå¿çšäŸãã¯ãã¹ãã©ãŠã¶äºææ§ããããŠCSSã¹ã¿ã€ãªã³ã°ã«é©åœãããããé«åºŠãªãã¯ããã¯ãåŠã³ãŸãããã
CSS :has() ã»ã¬ã¯ã¿ãŒã®ç¿åŸïŒèŠªèŠçŽ ãéžæããç»æçãªå
é·å¹Žã«ããããCSSéçºè
ã¯åèŠçŽ ã«åºã¥ããŠèŠªèŠçŽ ãç°¡åãã€å¹æçã«éžæããæ¹æ³ãåæããŠããŸããããã®åŸ
ã¡æéã¯çµãããŸããïŒã€ãã«:has()
ç䌌ã¯ã©ã¹ãç»å Žããç§ãã¡ãCSSãèšè¿°ããæ¹æ³ã«é©åœããããããŠããŸãããã®åŒ·åãªã»ã¬ã¯ã¿ãŒã«ãããç¹å®ã®èŠçŽ ãåã«æã€èŠªèŠçŽ ãã¿ãŒã²ããã«ã§ããåçã§ã¬ã¹ãã³ã·ããªã¹ã¿ã€ãªã³ã°ã®å¯èœæ§ã倧ããåºãããŸãã
:has() ã»ã¬ã¯ã¿ãŒãšã¯äœãïŒ
:has()
ç䌌ã¯ã©ã¹ã¯ãåŒæ°ãšããŠã»ã¬ã¯ã¿ãŒãªã¹ããåãå
¥ããCSSã®ãªã¬ãŒã·ã§ãã«ç䌌ã¯ã©ã¹ã§ããã»ã¬ã¯ã¿ãŒãªã¹ãå
ã®ããããã®ã»ã¬ã¯ã¿ãŒããèŠçŽ ã®åå«ã®ãã¡å°ãªããšã1ã€ã®èŠçŽ ã«ãããããå Žåã«ããã®èŠçŽ ãéžæããŸããç°¡åã«èšãã°ã芪èŠçŽ ãç¹å®ã®åãæã£ãŠããïŒhasïŒãã確èªããæã£ãŠããå Žåã«ãã®èŠªèŠçŽ ãéžæãããŸãã
åºæ¬çãªæ§æã¯æ¬¡ã®ãšããã§ãïŒ
parent:has(child) { /* CSSã«ãŒã« */ }
ããã¯ãå°ãªããšã1ã€ã®child
èŠçŽ ãå«ãparent
èŠçŽ ã®ã¿ãéžæããŸãã
ãªã :has() ã¯ããã»ã©éèŠãªã®ãïŒ
åŸæ¥ãCSSã¯åèŠçŽ ã«åºã¥ããŠèŠªèŠçŽ ãéžæããèœåã«éçããããŸããããã®å¶çŽã®ãããåçãªã¹ã¿ã€ãªã³ã°ãå®çŸããã«ã¯è€éãªJavaScriptãœãªã¥ãŒã·ã§ã³ãåé¿çãå¿
èŠã«ãªãããšããããããŸããã:has()
ã»ã¬ã¯ã¿ãŒã¯ããããã®ç
©éãªææ³ãäžèŠã«ããããã¯ãªãŒã³ã§ä¿å®æ§ãé«ããããã©ãŒãã³ã¹ã®è¯ãCSSã³ãŒããå¯èœã«ããŸãã
:has()
ãç»æçã§ããçç±ã¯æ¬¡ã®ãšããã§ãïŒ
- ã¹ã¿ã€ãªã³ã°ã®ç°¡çŽ åïŒ ä»¥åã¯JavaScriptãå¿ èŠã ã£ãè€éãªã¹ã¿ã€ãªã³ã°ã«ãŒã«ããçŽç²ãªCSSã ãã§å®çŸã§ããããã«ãªããŸãã
- ä¿å®æ§ã®åäžïŒ ã¯ãªãŒã³ã§ç°¡æœãªCSSã³ãŒãã¯ãçè§£ããããã°ãä¿å®ã容æã«ãªããŸãã
- ããã©ãŒãã³ã¹ã®åŒ·åïŒ ãã€ãã£ãã®CSSã»ã¬ã¯ã¿ãŒã䜿çšããæ¹ããäžè¬çã«JavaScriptããŒã¹ã®ãœãªã¥ãŒã·ã§ã³ãããåªããããã©ãŒãã³ã¹ãåŸãããŸãã
- æè»æ§ã®åäžïŒ
:has()
ã»ã¬ã¯ã¿ãŒã¯ãåçã§ã¬ã¹ãã³ã·ããªãã¶ã€ã³ãäœæããäžã§ãã倧ããªæè»æ§ãæäŸããŸãã
:has() ã»ã¬ã¯ã¿ãŒã®åºæ¬çãªäŸ
:has()
ã»ã¬ã¯ã¿ãŒã®åã瀺ãããã«ãããã€ãã®ç°¡åãªäŸããå§ããŸãããã
äŸ1ïŒç»åã®ååšã«åºã¥ããŠèŠªDivãã¹ã¿ã€ãªã³ã°ãã
<img>
èŠçŽ ãå«ã<div>
èŠçŽ ã«ã®ã¿æ ç·ã远å ããããšããŸãïŒ
div:has(img) {
border: 2px solid blue;
}
ãã®CSSã«ãŒã«ã¯ãå°ãªããšã1ã€ã®<img>
èŠçŽ ãå«ããã¹ãŠã®<div>
ã«éãæ ç·ãé©çšããŸãã
äŸ2ïŒSpanã®ååšã«åºã¥ããŠãªã¹ãé ç®ãã¹ã¿ã€ãªã³ã°ãã
ã¢ã€ãã ã®ãªã¹ãããããç¹å®ã®ã¯ã©ã¹ãæã€<span>
èŠçŽ ãå«ããªã¹ãé
ç®ããã€ã©ã€ãããããšããŸãïŒ
li:has(span.highlight) {
background-color: yellow;
}
ãã®CSSã«ãŒã«ã¯ããhighlightãã¯ã©ã¹ãæã€<span>
ãå«ããã¹ãŠã®<li>
ã®èæ¯è²ãé»è²ã«å€æŽããŸãã
äŸ3ïŒå ¥åã®æå¹æ§ã«åºã¥ããŠãã©ãŒã ã©ãã«ãã¹ã¿ã€ãªã³ã°ãã
:has()
ã䜿çšããŠãé¢é£ããå
¥åãã£ãŒã«ããæå¹ãç¡å¹ãã«åºã¥ããŠãã©ãŒã ã©ãã«ãã¹ã¿ã€ãªã³ã°ã§ããŸãïŒ:invalid
ç䌌ã¯ã©ã¹ãšçµã¿åãããŸãïŒïŒ
label:has(+ input:invalid) {
color: red;
font-weight: bold;
}
ããã«ãããçŽåŸã®å ¥åãã£ãŒã«ããç¡å¹ãªå Žåã«ãã©ãã«ãèµ€åã§å€ªåã«ãªããŸãã
:has() ã»ã¬ã¯ã¿ãŒã®é«åºŠãªäœ¿çšæ³
:has()
ã»ã¬ã¯ã¿ãŒã¯ãä»ã®CSSã»ã¬ã¯ã¿ãŒãç䌌ã¯ã©ã¹ãšçµã¿åãããããšã§ãããã«åŒ·åã«ãªããŸãã以äžã«ããã€ãã®é«åºŠãªäœ¿çšäŸã瀺ããŸãïŒ
äŸ4ïŒç¹å®ã®åãæããªãèŠçŽ ãã¿ãŒã²ããã«ãã
:not()
ç䌌ã¯ã©ã¹ã:has()
ãšçµã¿åãããŠãç¹å®ã®åã*æããªã*èŠçŽ ãã¿ãŒã²ããã«ããããšãã§ããŸããäŸãã°ãç»åãå«ãŸ*ãªã*divãã¹ã¿ã€ãªã³ã°ããã«ã¯ïŒ
div:not(:has(img)) {
background-color: #f0f0f0;
}
ããã«ããã<img>
èŠçŽ ãå«ãŸãªããã¹ãŠã®<div>
ã«èãç°è²ã®èæ¯ãé©çšãããŸãã
äŸ5ïŒè€éãªã¬ã€ã¢ãŠãã®äœæ
:has()
ã»ã¬ã¯ã¿ãŒã¯ãã³ã³ããã®ã³ã³ãã³ãã«åºã¥ããŠåçãªã¬ã€ã¢ãŠããäœæããããã«äœ¿çšã§ããŸããäŸãã°ãã°ãªããã»ã«å
ã«ç¹å®ã®ã¿ã€ãã®èŠçŽ ãååšãããã«åºã¥ããŠã°ãªããã®ã¬ã€ã¢ãŠãã倿Žã§ããŸãã
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.grid-item:has(img) {
grid-column: span 2;
}
ããã«ãããç»åãå«ãã°ãªããã¢ã€ãã ã¯2åã«ããã£ãŠè¡šç€ºãããããã«ãªããŸãã
äŸ6ïŒåçãªãã©ãŒã ã®ã¹ã¿ã€ãªã³ã°
:has()
ã䜿çšããŠããã©ãŒã èŠçŽ ã®ç¶æ
ïŒäŸïŒãã©ãŒã«ã¹ãããŠããããå
¥åæžã¿ããæå¹ãïŒã«åºã¥ããŠåçã«ã¹ã¿ã€ãªã³ã°ããããšãã§ããŸãã
.form-group:has(input:focus) {
box-shadow: 0 0 5px rgba(0, 0, 255, 0.5);
}
.form-group:has(input:valid) {
border-color: green;
}
.form-group:has(input:invalid) {
border-color: red;
}
ããã«ãããå ¥åããã©ãŒã«ã¹ããããšéãããã¯ã¹ã·ã£ããŠã远å ãããå ¥åãæå¹ãªå Žåã¯ç·ã®æ ç·ãç¡å¹ãªå Žåã¯èµ€ãæ ç·ã远å ãããŸãã
äŸ7ïŒåã®æ°ã«åºã¥ããã¹ã¿ã€ãªã³ã°
:has()
ã¯çŽæ¥åã®æ°ãæ°ããããã§ã¯ãããŸããããä»ã®ã»ã¬ã¯ã¿ãŒãCSSããããã£ãšçµã¿åãããããšã§åæ§ã®å¹æãåŸãããšãã§ããŸããäŸãã°ã:only-child
ã䜿çšããŠãç¹å®ã®ã¿ã€ãã®åã1ã€ã ãæã€èŠªãã¹ã¿ã€ãªã³ã°ã§ããŸãã
div:has(> p:only-child) {
background-color: lightgreen;
}
ããã«ãããçŽæ¥ã®åãšããŠ<p>
èŠçŽ ã1ã€ã ãå«ã<div>
ããèç·è²ã®èæ¯ã§ã¹ã¿ã€ãªã³ã°ãããŸãã
ã¯ãã¹ãã©ãŠã¶äºææ§ãšãã©ãŒã«ããã¯
2023幎åŸåçŸåšã:has()
ã»ã¬ã¯ã¿ãŒã¯ChromeãFirefoxãSafariãEdgeãªã©ã®äž»èŠãªã¢ãã³ãã©ãŠã¶ã§åªãããµããŒãã享åããŠããŸããããããæ¬çªç°å¢ã«å°å
¥ããåã«ã¯ãç¹ã«å€ããã©ãŠã¶ããµããŒãããå¿
èŠãããå ŽåãCan I useã§äºææ§ã確èªããããšãéèŠã§ãã
äºææ§ã«é¢ããèæ ®äºé ã®å èš³ã¯ä»¥äžã®ãšããã§ãïŒ
- ã¢ãã³ãã©ãŠã¶ïŒ ChromeãFirefoxãSafariãEdgeã®ææ°ããŒãžã§ã³ã§åªãããµããŒãã
- å€ããã©ãŠã¶ïŒ å€ããã©ãŠã¶ïŒäŸïŒInternet ExplorerïŒã§ã¯ãµããŒããããŠããŸããã
ãã©ãŒã«ããã¯ã®æäŸ
å€ããã©ãŠã¶ããµããŒãããå¿ èŠãããå Žåã¯ããã©ãŒã«ããã¯ãæäŸããå¿ èŠããããŸãã以äžã«ããã€ãã®æŠç¥ã瀺ããŸãïŒ
- JavaScriptïŒ JavaScriptã䜿çšããŠãã©ãŠã¶ã®
:has()
ãµããŒããæ€åºããå¿ èŠã«å¿ããŠä»£æ¿ã®ã¹ã¿ã€ãªã³ã°ãé©çšããŸãã - ãã£ãŒãã£ãŒã¯ãšãªïŒ CSSãã£ãŒãã£ãŒã¯ãšãªïŒ
@supports
ïŒã䜿çšããŠããã©ãŠã¶ã®ãµããŒãã«åºã¥ããŠç°ãªãã¹ã¿ã€ã«ãæäŸããŸãã - ããã°ã¬ãã·ããšã³ãã³ã¹ã¡ã³ãïŒ ãŸããã¹ãŠã®ãã©ãŠã¶ã§æ©èœããåºæ¬çãªãã¶ã€ã³ããå§ãã
:has()
ããµããŒããããã©ãŠã¶ã«å¯ŸããŠæ®µéçã«ãã¶ã€ã³ã匷åããŸãã
以äžã¯ãã£ãŒãã£ãŒã¯ãšãªã䜿çšããäŸã§ãïŒ
.parent {
/* ãã¹ãŠã®ãã©ãŠã¶åãã®åºæ¬çãªã¹ã¿ã€ãªã³ã° */
border: 1px solid black;
}
@supports selector(:has(img)) {
.parent:has(img) {
/* :has()ããµããŒããããã©ãŠã¶åãã®åŒ·åãããã¹ã¿ã€ãªã³ã° */
border: 3px solid blue;
}
}
ãã®ã³ãŒãã¯ããã¹ãŠã®ãã©ãŠã¶ã§.parent
èŠçŽ ã«é»ãæ ç·ãé©çšããŸãã:has()
ããµããŒããããã©ãŠã¶ã§ã¯ã.parent
èŠçŽ ãç»åãå«ãå Žåã«éãæ ç·ãé©çšããŸãã
ããã©ãŒãã³ã¹ã«é¢ããèæ ®äºé
:has()
ã¯å€§ããªå©ç¹ãæäŸããŸãããç¹ã«åºç¯å²ã«äœ¿çšããããè€éãªã»ã¬ã¯ã¿ãŒãšçµã¿åããããããå Žåã®ããã©ãŒãã³ã¹ãžã®æœåšçãªåœ±é¿ãèæ
®ããããšãäžå¯æ¬ ã§ãããã©ãŠã¶ã¯ããŒãžäžã®ãã¹ãŠã®èŠçŽ ã«å¯ŸããŠã»ã¬ã¯ã¿ãŒãè©äŸ¡ããå¿
èŠããããããã¯èšç®ã³ã¹ããé«ããªãå¯èœæ§ããããŸãã
:has()
ã®ããã©ãŒãã³ã¹ãæé©åããããã®ãã³ããããã€ã玹ä»ããŸãïŒ
- ã»ã¬ã¯ã¿ãŒãã·ã³ãã«ã«ä¿ã€ïŒ
:has()
ç䌌ã¯ã©ã¹å ã§é床ã«è€éãªã»ã¬ã¯ã¿ãŒã䜿çšããªãã§ãã ããã - ã¹ã³ãŒããéå®ããïŒ
:has()
ãã°ããŒãã«ã«é©çšããã®ã§ã¯ãªããç¹å®ã®èŠçŽ ãã³ã³ããã«é©çšããŸãã - ããã©ãŒãã³ã¹ããã¹ãããïŒ ãã©ãŠã¶ã®éçºè ããŒã«ã䜿çšããŠCSSã«ãŒã«ã®ããã©ãŒãã³ã¹ãç£èŠããæœåšçãªããã«ããã¯ãç¹å®ããŸãã
é¿ããã¹ãäžè¬çãªééã
:has()
ã»ã¬ã¯ã¿ãŒãæ±ãéãäºæãã¬çµæã«ã€ãªããééããç¯ããã¡ã§ãã以äžã«é¿ããã¹ãäžè¬çãªèœãšã穎ãããã€ã瀺ããŸãïŒ
- 詳现床ã®åé¡ïŒ
:has()
ã«ãŒã«ãä»ã®CSSã«ãŒã«ãäžæžãããã®ã«ååãªè©³çŽ°åºŠãæã£ãŠããããšã確èªããŠãã ãããéåžžãšåæ§ã®è©³çŽ°åºŠã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°æé ã䜿çšããŸãã - äžé©åãªãã¹ãïŒ
:has()
ã»ã¬ã¯ã¿ãŒãæ£ãã芪èŠçŽ ãã¿ãŒã²ããã«ããŠããããèŠçŽ ã®ãã¹ããå確èªããŠãã ããã - é床ã«è€éãªã»ã¬ã¯ã¿ãŒïŒ ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ãããããã
:has()
ç䌌ã¯ã©ã¹å ã§é床ã«è€éãªã»ã¬ã¯ã¿ãŒã䜿çšããªãã§ãã ããã - çŽæ¥ã®åãšä»®å®ããïŒ
:has()
ã¯çŽæ¥ã®åã ãã§ãªãã*ãã¹ãŠ*ã®åå«ããã§ãã¯ããããšãå¿ããªãã§ãã ãããçŽæ¥ã®åã®ã¿ãã¿ãŒã²ããã«ããå¿ èŠãããå Žåã¯ãçŽæ¥åçµååïŒ>
ïŒã䜿çšããŸãïŒäŸïŒdiv:has(> img)
ïŒã
:has() ã䜿çšããããã®ãã¹ããã©ã¯ãã£ã¹
:has()
ã»ã¬ã¯ã¿ãŒã®å©ç¹ãæå€§éã«æŽ»çšããæœåšçãªåé¡ãé¿ããããã«ã以äžã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã ããïŒ
- è³¢æã«äœ¿çšããïŒ ä»ã®CSSãã¯ããã¯ãJavaScriptãœãªã¥ãŒã·ã§ã³ãããæç¢ºãªå©ç¹ãããå Žåã«ã®ã¿
:has()
ã䜿çšããŸãã - ã·ã³ãã«ã«ä¿ã€ïŒ è€éã§é£è§£ãªã»ã¬ã¯ã¿ãŒããããã·ã³ãã«ã§èªã¿ãããã»ã¬ã¯ã¿ãŒãåªå ããŸãã
- 培åºçã«ãã¹ãããïŒ æåŸ ã©ããã«æ©èœããããšã確èªããããã«ãããŸããŸãªãã©ãŠã¶ãããã€ã¹ã§CSSã«ãŒã«ããã¹ãããŸãã
- ã³ãŒããææžåããïŒ
:has()
ã«ãŒã«ã®ç®çãšæ©èœã説æããããã«ãCSSã³ãŒãã«ã³ã¡ã³ãã远å ããŸãã - ã¢ã¯ã»ã·ããªãã£ãèæ
®ããïŒ
:has()
ã®äœ¿çšãã¢ã¯ã»ã·ããªãã£ã«æªåœ±é¿ãäžããªãããã«ããŠãã ãããäŸãã°ãéèŠãªæ å ±ãäŒããããã«:has()
ã«ãã£ãŠããªã¬ãŒãããã¹ã¿ã€ãªã³ã°ã®å€æŽã ãã«é Œãããé害ã®ãããŠãŒã¶ãŒã®ããã«ARIA屿§ã代æ¿ã¡ã«ããºã ã䜿çšããŸãã
å®äžçã§ã®äŸãšãŠãŒã¹ã±ãŒã¹
:has()
ã»ã¬ã¯ã¿ãŒãäžè¬çãªãã¶ã€ã³ã®èª²é¡ã解決ããããã«ã©ã®ããã«äœ¿çšã§ããããããã€ãã®å®äžçã§ã®äŸãæ¢ã£ãŠã¿ãŸãããã
äŸ8ïŒã¬ã¹ãã³ã·ããªããã²ãŒã·ã§ã³ã¡ãã¥ãŒã®äœæ
:has()
ã䜿çšããŠãç¹å®ã®ã¡ãã¥ãŒé
ç®ã®ååšã«åºã¥ããŠç°ãªãç»é¢ãµã€ãºã«é©å¿ããã¬ã¹ãã³ã·ããªããã²ãŒã·ã§ã³ã¡ãã¥ãŒãäœæã§ããŸãã
ãŠãŒã¶ãŒããã°ã€ã³ããŠãããã©ããã«å¿ããŠç°ãªãããã²ãŒã·ã§ã³ã¡ãã¥ãŒã衚瀺ãããã·ããªãªãæ³åããŠã¿ãŠãã ããããã°ã€ã³ããŠããå Žåã¯ãããã£ãŒã«ããã°ã¢ãŠãã®ã¢ã¯ã·ã§ã³ã衚瀺ããããã§ãªãå Žåã¯ãã°ã€ã³/ç»é²ã衚瀺ããŸãã
nav:has(.user-profile) {
/* ãã°ã€ã³æžã¿ãŠãŒã¶ãŒåãã®ã¹ã¿ã€ã« */
}
nav:not(:has(.user-profile)) {
/* ãã°ã¢ãŠããããŠãŒã¶ãŒåãã®ã¹ã¿ã€ã« */
}
äŸ9ïŒã«ãŒãã³ã³ããŒãã³ãã®ã¹ã¿ã€ãªã³ã°
:has()
ã»ã¬ã¯ã¿ãŒã¯ãã³ã³ãã³ãã«åºã¥ããŠã«ãŒãã³ã³ããŒãã³ããã¹ã¿ã€ãªã³ã°ããããã«äœ¿çšã§ããŸããäŸãã°ãç»åãå«ãŸããŠããå Žåã«ã®ã¿ã«ãŒãã«åœ±ã远å ããããšãã§ããŸãã
.card:has(img) {
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}
äŸ10ïŒåçããŒãã®å®è£
:has()
ã䜿çšããŠããŠãŒã¶ãŒã®å¥œã¿ãã·ã¹ãã èšå®ã«åºã¥ããŠåçãªããŒããå®è£
ã§ããŸããäŸãã°ããŠãŒã¶ãŒãããŒã¯ã¢ãŒããæå¹ã«ããŠãããã©ããã«åºã¥ããŠããŒãžã®èæ¯è²ã倿Žã§ããŸãã
body:has(.dark-mode) {
background-color: #333;
color: #fff;
}
ãããã®äŸã¯ã:has()
ã»ã¬ã¯ã¿ãŒã®å€çšéæ§ãšãå¹
åºããã¶ã€ã³èª²é¡ã解決ããèœåã瀺ããŠããŸãã
CSSã®æªæ¥ïŒæ¬¡ã«æ¥ããã®ã¯ïŒ
:has()
ã»ã¬ã¯ã¿ãŒã®å°å
¥ã¯ãCSSã®é²åã«ãããéèŠãªäžæ©ã§ããããã«ãããéçºè
ã¯JavaScriptãžã®äŸåãæžãããããåçã§ã¬ã¹ãã³ã·ãã§ä¿å®æ§ã®é«ãã¹ã¿ã€ã«ã·ãŒããäœæã§ããããã«ãªããŸãã:has()
ã®ãã©ãŠã¶ãµããŒããæ¡å€§ãç¶ããã«ã€ããŠããã®åŒ·åãªã»ã¬ã¯ã¿ãŒã®ããã«é©æ°çã§åµé çãªäœ¿çšæ³ãèŠãããããšãæåŸ
ãããŸãã
å°æ¥ãèŠæ®ããŠãCSSã¯ãŒãã³ã°ã°ã«ãŒãã¯CSSã®èœåãããã«æ¡å€§ããä»ã®ãšããµã€ãã£ã³ã°ãªæ©èœãæ¡åŒµãæ€èšããŠããŸãããããã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- ã³ã³ããã¯ãšãªïŒ ãã¥ãŒããŒãã§ã¯ãªããã³ã³ããã®ãµã€ãºã«åºã¥ããŠã³ã³ããŒãã³ããã¹ã¿ã€ãªã³ã°ãé©å¿ã§ããããã«ããŸãã
- ã«ã¹ã±ãŒãã¬ã€ã€ãŒïŒ CSSã«ãŒã«ã®ã«ã¹ã±ãŒããšè©³çŽ°åºŠããã现ããå¶åŸ¡ã§ããããã«ããŸãã
- ããé«åºŠãªã»ã¬ã¯ã¿ãŒïŒ 屿§ãã³ã³ãã³ããããã¥ã¡ã³ãããªãŒå ã®äœçœ®ã«åºã¥ããŠèŠçŽ ãã¿ãŒã²ããã«ã§ããæ°ããã»ã¬ã¯ã¿ãŒãå°å ¥ããŸãã
ææ°ã®CSSã®ååãåžžã«ææ¡ãã:has()
ã®ãããªæ°æ©èœã掻çšããããšã§ãéçºè
ã¯CSSã®å¯èœæ§ãæå€§éã«åŒãåºããçã«åªãããŠã§ãäœéšãåµé ããããšãã§ããŸãã
çµè«
:has()
ã»ã¬ã¯ã¿ãŒã¯CSSããŒã«ããã¯ã¹ãžã®åŒ·åãªè¿œå æ©èœã§ããã芪èŠçŽ ã®éžæãå¯èœã«ããåçã§ã¬ã¹ãã³ã·ããªã¹ã¿ã€ãªã³ã°ã®æ°ããªå¯èœæ§ãåãéããŸãããã©ãŠã¶ã®äºææ§ãããã©ãŒãã³ã¹ãžã®åœ±é¿ãèæ
®ããããšã¯éèŠã§ãããããã¯ãªãŒã³ã§ä¿å®æ§ãé«ããããã©ãŒãã³ã¹ã®è¯ãCSSã³ãŒããå®çŸããããã®:has()
ã䜿çšããå©ç¹ã¯åŠå®ã§ããŸããããã®ç»æçãªã»ã¬ã¯ã¿ãŒãåãå
¥ãã仿¥ã®ããªãã®CSSã¹ã¿ã€ãªã³ã°ã«é©åœãèµ·ãããŸãããïŒ
ã¢ã¯ã»ã·ããªãã£ãèæ
®ããå€ããã©ãŠã¶ã®ããã®ãã©ãŒã«ããã¯ã¡ã«ããºã ãæäŸããããšãå¿ããªãã§ãã ããããã®ã¬ã€ãã§æŠèª¬ãããã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ã:has()
ã»ã¬ã¯ã¿ãŒã®å¯èœæ§ãæå€§éã«æŽ»çšããäžçäžã®ãŠãŒã¶ãŒã«çã«åªãããŠã§ãäœéšãæäŸããããšãã§ããŸãã